In a typical non-volatile memory having floating gate transistors, such as flash memory, a bit is programmed by changing a threshold voltage of a selected floating gate memory cell. An unprogrammed, or erased, cell will have a different threshold voltage than a programmed cell. A read operation is used to determine the programmed state of the floating gate memory cell and is performed by applying a predetermined voltage to a gate of the selected memory cell while a source terminal of the cell is coupled to a predetermined voltage, such as for example, ground. A resulting drain current is compared to a reference current in a sense amplifier to determine the programmed state. For example, if the cell current is greater than the reference current, then the cell may be considered to be in an erased state. Likewise, if the cell current is less than the reference current, then the cell may be considered to be in a programmed state. The reference voltage, or current, is generally established to be about half way between a logic high voltage and a logic low voltage of the memory cells.
Several techniques have been used in the past to generate the reference voltage for memories that use voltage sensing. One technique used to generate the reference voltage depends on the use of “dummy cells”. A dummy cell is manufactured using the same process technology as the normal cells of a memory array in order to model the behavior of the normal cells as closely as possible. However, the dummy cell will be physically smaller to generate a reference voltage that is between a logic high voltage and a logic low voltage for the cell. The problem with this technique is that reducing geometries of the cells produces process problems in keeping the time-current ratio of the dummy cell to normal cell constant.
Also, a dummy cell that is the same size as a normal cell can be used. However, a voltage divider is used to provide a reduced gate voltage to the normal sized cell.
Another technique is to connect normal sized dummy cells in series or parallel combinations. One of the cells will be programmed to read a “zero” state and the other programmed to read a “one” logic state to produce the required reference voltage. However, this technique may create errors due to the non-linearity of the resistance with voltage.
Yet another technique involves the use of current mirrors to establish the reference voltage. However, current mirrors sometimes do not produce the desired current with an acceptable degree of accuracy.
A nanocrystal memory uses nanocrystals embedded in an insulator such as oxide as the charge storage medium. In a nanocrystal memory that employs hot carrier injection for programming and channel erase for erasing, it has been found that electrons tend to be trapped in the interface between the top oxide and the bottom tunnel oxide in areas between the nanocrystals. These electrons cannot be removed even with extended erase times and/or very high erase voltages. As a result of this trapping of electrons, the erased threshold voltage and the programmed threshold voltage both tend to increase with the cumulative number of program/erase operations. This creates a problem when choosing a reference voltage for a read operation. If the reference voltage is too high, the gate oxide may be damaged and read speed will be degraded. However, if the reference voltage is chosen to be too low, the read margins will suffer.
Therefore, there is a need for a circuit that can generate an accurate reference voltage in a nanocrystal memory cell that maintains speed and read margins throughout the life of the memory.